#include <string>
#include <iostream>
#include <vector>
#include "server.hpp"

void BufferTest()
{
    Buffer buf;
    // for (int i = 0; i < 300; ++i)
    // {
    //     std::string str = std::string("nihao") + std::to_string(i);
    //     buf.WriteAndPush(str);
    // }

    // std::string str("hello nihao haha");
    // buf.WriteAndPush(str);    
    // Buffer buf_2;
    // buf_2.WriteAndPush(buf);
    // std::cout << buf_2.GetReadableSpace() << std::endl;
    // std::string str_2 = buf_2.ReadAndPop(str.size());
    // std::cout << str_2 << std::endl;
    // std::cout << buf_2.GetReadableSpace() << std::endl;


    // std::string str("hello\nnihao\nhaha\n");
    // buf.WriteAndPush(str);
    // // std::cout << buf.GetReadableSpace() << std::endl;
    // while (buf.GetReadableSpace() > 0)
    // {
    //     std::string ret = buf.GetLineAndPop();
    //     std::cout << ret << std::endl;
    //     // std::cout << buf.GetReadableSpace() << std::endl;
    // }

    // std::string ret = buf.ReadAndPop(str.size());
    // std::string ret = buf.Read(str.size());
    // std::cout << ret << std::endl;
    // std::cout << buf.GetReadableSpace() << std::endl;
}

// void ChannelTest()
// {
//     Channel ch(10);
// }

void PollerTest()
{
    std::vector<Channel*> res;
    Poller pler;
    pler.Poll(&res);
}

int main()
{
    // ChannelTest();
    // PollerTest();
    return 0;
}